package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.ReturnList;
import com.atguigu.jxc.entity.vo.ReturnListCountVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 杨林
 * @create 2023-01-29 22:57 星期日
 * description:
 */
public interface ReturnListDao {

    /**
     * 保存returnList
     * @param returnList
     */
    void save(ReturnList returnList);

    /**
     * 退货单列表展示（可条件查询：单据号模糊、供应商、是否付款和日期区间）
     * @param returnNumber
     * @param supplierId
     * @param state
     * @param sTime
     * @param eTime
     * @return
     */
    List<ReturnList> list(@Param("returnNumber") String returnNumber,
                          @Param("supplierId") Integer supplierId,
                          @Param("state") Integer state,
                          @Param("sTime") String sTime,
                          @Param("eTime") String eTime);


    /**
     * 删除退货单
     * @param returnListId
     */
    void delete(@Param("returnListId") Integer returnListId);


    /**
     * 退货统计（可根据 商品类别、商品编码或名称 条件查询）
     * @param sTime
     * @param eTime
     * @param goodsTypeId
     * @param codeOrName
     * @return
     */
    List<ReturnListCountVo> count(@Param("sTime") String sTime,
                                  @Param("eTime") String eTime,
                                  @Param("goodsTypeId") Integer goodsTypeId,
                                  @Param("codeOrName") String codeOrName);
}
